package aplicativo.conversor;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import aplicativo.conversor.R;
import aplicativo.conversor.util.Calculos;

public class MedidasActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.medidas);
		preencherSpinner(new String[]{	"Metros para Quilometros",
										"Quilometros para Metros",
										"Milhas para Quilometros",
										"Quilometros para Milhas",
										"Metros para Pes",
										"Pes para Metros"});
		converterClick();
	}

    private void converterClick() {
    	final EditText text = (EditText) findViewById(R.medidas.medConverter);
    	final Spinner sp = (Spinner)findViewById(R.medidas.spMedidas);
    	
    	
    	Button bt = (Button) findViewById(R.medidas.btConverter);
    	bt.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				final String medidaCalculada = calcularMedida(sp, text);
				showMessage("Medida convertida", 
							medidaCalculada,
							"OK",
							R.drawable.icon);
			}
		});
    }
    
	private String calcularMedida(Spinner spinner, EditText text) {
		double medida = new Double(text.getText().toString());
		String opcao = spinner.getSelectedItem().toString();
		if ("Metros para Quilometros".equalsIgnoreCase(opcao)) {
			medida = Calculos.metroToQuilometro(medida);
		} else if ("Quilometros para Metros".equalsIgnoreCase(opcao)) {
			medida = Calculos.quilometroToMetro(medida);
		} else if ("Milhas para Quilometros".equalsIgnoreCase(opcao)) {
			medida = Calculos.milhasToQuilometro(medida);
		} else if ("Quilometros para Milhas".equalsIgnoreCase(opcao)) {
			medida = Calculos.quilometroToMilha(medida);
		} else if ("Metros para Pes".equalsIgnoreCase(opcao)) {
			medida = Calculos.metrosToPes(medida);
		} else if ("Pes para Metros".equalsIgnoreCase(opcao)) {
			medida = Calculos.pesToMetro(medida);
		}
		return medida + "";
	}
	
	public void showMessage(String titulo, String mensagem, String botao, int icone) {
		AlertDialog.Builder janela = new AlertDialog.Builder(this);
		janela.setTitle(titulo);
		janela.setMessage(mensagem);
		final AlertDialog dialog = janela.create();
		if (icone != 0) {
			janela.setIcon(icone);
		}
		dialog.setButton(botao, new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				dialog.dismiss();
			}
		});
		dialog.show();
	}
	
	private void preencherSpinner(String[] valores) {
		Spinner sp = (Spinner)findViewById(R.medidas.spMedidas);
    	ArrayAdapter<String> itens = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, valores);
    	sp.setAdapter(itens);
	}
	
}
